/*
 * Copyright 2002-2006 the original author or authors. Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
 * either express or implied. See the License for the specific language governing permissions and limitations under the
 * License.
 */
package pikes.html;

import org.junit.Assert;
import org.junit.Test;

import pikes.html.propertyeditors.HtmlDocTypeEditor;
import pikes.html.xhtml.version10.FrameSetDocType;
import pikes.html.xhtml.version10.StrictDocType;
import pikes.html.xhtml.version10.TransitionalDocType;
import pikes.html.xhtml.version11.XHtml11DocType;

public class HtmlDocTypeEditorTestCase {

	@Test
	public void testBoo() throws Exception {
		HtmlDocTypeEditor editor = new HtmlDocTypeEditor();
		try {
			editor.setAsText("boo");
			Assert.fail("Should have thrown IllegalArgumentException");
		}
		catch (IllegalArgumentException e) {

		}
	}
	
	@Test
	public void testStrict() throws Exception {
		HtmlDocTypeEditor editor = new HtmlDocTypeEditor();
		editor.setAsText("strict");
		Object value = editor.getValue();
		Assert.assertTrue(value instanceof StrictDocType);
		Assert.assertEquals("strict", editor.getAsText());

	}

	@Test
	public void testTransitional() throws Exception {
		HtmlDocTypeEditor editor = new HtmlDocTypeEditor();
		editor.setAsText("transitional");
		Object value = editor.getValue();
		Assert.assertTrue(value instanceof TransitionalDocType);

	}

	@Test
	public void testFrameSet() throws Exception {
		HtmlDocTypeEditor editor = new HtmlDocTypeEditor();
		editor.setAsText("frameset");
		Object value = editor.getValue();
		Assert.assertTrue(value instanceof FrameSetDocType);

	}

	@Test
	public void testXHTML11() throws Exception {
		HtmlDocTypeEditor editor = new HtmlDocTypeEditor();
		editor.setAsText("xhtml11");
		Object value = editor.getValue();
		Assert.assertTrue(value instanceof XHtml11DocType);

	}
}
